package Control;

import java.net.URL;
import java.util.HashMap;
import java.util.Vector;

import javax.media.*;

import Model.Song;

public interface IPlayerlogic {
	
	/*=================== Getter ===================*/
	
	public abstract boolean isButtonsClickable();
	
	public abstract HashMap<Integer, Song> getSongMap();
	
	public abstract String getTitleName();
	
	public abstract int getMinutes();

	public abstract int getSeconds();
	
	public abstract Player getPlayMP3();

	public abstract URL getUrl();
	
	public abstract String getInterpretName();

	public abstract int getActualMediaTimeInSeconds();
	
	public abstract int getMusicLengthInSeconds();
	
	public abstract int getMusicLengthSec();
	
	public abstract int getMusicLengthMin();
	
	public abstract boolean isRepeat();
	
	public abstract boolean isRandomPlay();
	
	public abstract int getIndexVectorSize();
	
	public abstract int getPrevIndexVectorSize();
	
	public abstract boolean isPrevButtonClickable();
	
	/*=================== Setter ===================*/
	
	public abstract void setSongMap(HashMap<Integer, Song> songMap);
	
	public abstract void setButtonsClickable(boolean buttonsClickable);
	
	public abstract void setPlayMP3(Player playMP3);

	public abstract void setUrl(URL url);
	
	public abstract void setResume(Time resume);

	public abstract void setRepeat(boolean repeat);
	
	public abstract void setRandomPlay(boolean randomPlay);
	
	public abstract void setPaused(boolean paused);
	
	public abstract void setGlobalVolume(float globalVolume);
	
	public abstract void setPrevButtonClickable(boolean prevButtonClickable);
	
	public abstract void setIndexTitle(int indexTitle);

	/*=================== Andere Methoden ===================*/
	
	public abstract void runTitle();

	public abstract void stopTitle();
	
	public abstract String nextTitle();
	
	public abstract String prevTitle();
	
	public abstract String selectedTitle(int index);
	
	public abstract void pauseTitle();
	
	public abstract String firstTitle();
	
	public abstract void volumeChange(float volume);
	
	public abstract void musicTimeUpdate();

	public abstract void convertUrl(String urlString);
	
	public abstract String[][] convertMapToArrString();
	
	public abstract String randomTitle();
	
	public abstract void fillIndexVector();
	
	public abstract Vector<String> playlistPathMusic(int[] index);

}
